3DWorld (72/293)

From:Paul Qureshi
Date:14 Apr 2000 at 15:12:52
Subject:Crazy Taxi engine details

Hi all.

As some of you may remeber I was working on a racing game. Well, things
have been going slowly but hopefully now I'll get more time to work on
it, especially with Paraglide comming soon. In the meantime I have been
busy with MHI..

Anyway, I'd like to discuss a few details of the Crazy Taxi engine. My
brother has this game on the Dreamcast, and it's a real showcase for the
power of that system. Even with traffic levels set to high there is
very, very little slowdown. It manages to keep a nice constant 60 frame
per second. The detail on the game is also exellent, cars look quite
good and the scenery in particular is very well detailed. However, you
often don't notice that much as you speed past :)

Anyway, there are a few things that are of particular interest. Firstly,
the levels are very big. It takes quite a long time to get from one side
to the other. Obviously a lot of objects and textures are reused, but I
was wonder about the coordinate system used. It would be impossible to
use one single origin point I think, you would need some seriously big
numbers to deal with it. More likely I think is that the level is split
into sections, each with it's own origin that is used for all the
various objects in it. However, there must be some overlap to allow
object to get transported to other zones, or perhaps the objects jump
coordinate systems? I'll have to try pushing something from one end of a
city to another..

The next thing is the physics engine used for objects like cars and
boxes. It allows objects to tumble and fall realistically and roll
along. It's quite spectacular when several boxes go flying and bounce
away. I'd like to hear peoples ideas on how to impliment such an engine.
Note that object bounce off the ground and off each other, so you need
loads of collision detection, but it need not be 100% accurate as things
happen very fast.

The next thing is the car you drive. This used the very fast collision
detection too. Each wheel seems to independantly checked, as well as the
body. You can drive over buildings (on the roof), barriers (if you land
on them) and even other cars. You can't flip the car upside down, but I
don't think that's a limitation of the engine, more of the gameplay.
Again, this comes back to the collision detection, how do you manage so
much of it so quickly with such accuracy (it's not perfect, but very
nearly)?

Oh, and the people standing around seem to be able to predict where your
car will go and if it will hit them. Is there a good algo for this?

Finally, the other traffic. The cars stop at traffic lights, make proper
turns, drive realistically etc. The big tankers even look realistic,
bending in the middle where the cab joins the trailer. Has anyone got
any good ideas on how to manage something like this? I'd set up routes
around the roads and have cars stick to them. Traffic lights would be
done by putting an invisible obstacle in front of the junction, and the
cars would naturally stop before hitting it due to their AI.

Regards,
Paul



+---------------------------------------------+
| ## paul.qureshi@btinternet.com ## |
| Amiga 3D Graphics - www.mc68k.demon.co.uk |
| Amiga Coder - Asm/C/Blitz |
| Intel - Outside | +---------------------------------------------+